| 创建时间: | 2016/8/17 12:06 |
| 来源: | http://geekblog.zhaoyan.me/mongoose-%e5%bb%ba%e7%ab%8b%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%9e%e6%8e%a5/ |
mongooose is a mongodb object modeling for node.js
mongoose有两个连接数据库的方式(官方介绍):
var dbURL = 'mongodb://localhost/mydatabase'; mongoose.connect(dbURL);
一般来说,推荐在程序开始的时候,就建立建立,只有停止程序或者程序出现问题被迫中止的时候,才关掉或者重启连接
当然如果你只有一个数据库,用同样的用户权限登录,上面那个最简单的建立方式,是非常适合使用的。但是在很多时候,你会有多个数据或者不同的权限的账户连接。这个时候,你就需要建立多个数据库连接。
var dbURL = 'mogodb://localhost/myadminDatabase'; var adminConnection= mongoose.createConnection(dbURL);
之前提到了connection string – dbURL,其实connection string有很多不同的配置,这里简单的做一个介绍
– Port
var dbURL = 'mongodb://localhost:27018/mydatabase';
– User
var dbURL = 'mongodb://username:password@localhost/mydatabse';
或者你也可以
var dbURL = 'mogodb://localhost/myadminDatabase';
var dbOptions = {'user':'db_user','pass':'db_password'};
mongoose.connect(dbURL,dbOptions);
mogoose.connection.close(function(){
console.log('connection closed');
});
adminConnection.close(function(){
console.log('connection closed');
});
当程序停止之后自动关闭连接
process.on('SIGINT', function() {
mongoose.connection.close(function () {
console.log('Mongoose disconnected through app termination');
process.exit(0); });
});
如何catch error
mongoose.connection.on('error',function (err) {
console.log('Mongoose connection error: ' + err);
});
在我们知道了如何大家连接,如何关闭连接,如何catch error,我们这里把之前的东西综合起来,看如何在一个新project中更好的建立mongoose的结构
首先,建立一个/model/db.js文件,加入下面代码
var mongoose = require( 'mongoose' );
// Build the connection string
var dbURI = 'mongodb://localhost/MongoosePM';
// Create the database connection
mongoose.connect(dbURI);
mongoose.connection.on('connected', function () {
console.log('Mongoose connected to ' + dbURI);
});
mongoose.connection.on('error',function (err) {
console.log('Mongoose connection error: ' + err);
});
mongoose.connection.on('disconnected', function () {
console.log('Mongoose disconnected');
});
process.on('SIGINT', function() {
mongoose.connection.close(function () {
console.log('Mongoose disconnected through app termination');
process.exit(0);
});
});
在project start的时候打开连接,在app.js 或者server.js当中加入
db = require('./model/db')